﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using AccesoDatos.Manejador;
using AccesoDatos.Objetos;

namespace Autorizacion_facturas_caja
{
    public partial class frmPrestamos_Lista : Form
    {
        objPrestamos objP = new objPrestamos();
        objRH objR = new objRH();
        Manejador_Prestamos_ConsultasListas Man = new Manejador_Prestamos_ConsultasListas();
        Manejador_Empleado_Captura Mane = new Manejador_Empleado_Captura();
        int bandera;
        string buscar, suc;

        public frmPrestamos_Lista()
        {
            InitializeComponent();
            ToolTip1();
            ObtieneDatosCombo();
          //  btnInforme.Visible = false;
        }
        private void frmPrestamos_Lista_Load(object sender, EventArgs e)
        {
            LlenarDatagrid();
        }
        
        #region funciones
     
            private void LlenarDatagrid() 
            {
                try
                {
                    obtenerCampos();
                    dataGridView1.DataSource = Man.PrestamosListas(bandera, buscar, suc);
                    propiedadesColumnas();
                }
                catch {  }
            }
            public void obtenerCampos() {
                try
                {
                    if (rdoBtnAutorizado.Checked) bandera = 2;
                    else if (rdoBtnNoautorizado.Checked) bandera = 1;
                    else if (rdoBtnPagados.Checked) bandera = 4;
                    else if (rdoBtnProceso.Checked) bandera = 3;
                    buscar = txtBuscar.Text.Trim();
                    suc = cmbSucursal.SelectedValue.ToString();
                }catch{}
            }
            public void propiedadesColumnas() {

                try
                {
                    //QUITA LA PRIMERA COLUMNA
                    this.dataGridView1.RowHeadersVisible = false;
                    //Columnas invisibles en todos los casos
                    this.dataGridView1.Columns["id_empleado"].Visible = false;
                    this.dataGridView1.Columns["id_prestamo"].Visible = false;
                    this.dataGridView1.Columns["descripcion"].Visible = false;
                    this.dataGridView1.Columns["autorizado"].Visible = false;
                    this.dataGridView1.Columns["estatus"].Visible = false;
                    this.dataGridView1.Columns["id_empleado1"].Visible = false;
                    this.dataGridView1.Columns["id_sucursal"].Visible = false;
                    this.dataGridView1.Columns["fecha_ingreso"].Visible = false;
                    this.dataGridView1.Columns["id_jefe"].Visible = false;
                    this.dataGridView1.Columns["cuenta_banco"].Visible = false;
                    this.dataGridView1.Columns["estatus1"].Visible = false;
                    this.dataGridView1.Columns["nombre"].Visible = false;
                    this.dataGridView1.Columns["apellidos"].Visible = false;
                    this.dataGridView1.Columns["razones"].Visible = false;
               
                    this.dataGridView1.Columns["fecha_solicitud"].Visible = false;
                    this.dataGridView1.Columns["tipo_prestamo"].Visible = false;
                    this.dataGridView1.Columns["cantidad_solicitada"].Visible = false;
                    this.dataGridView1.Columns["cantidad_autorizada"].Visible = false;
                    this.dataGridView1.Columns["cantidad_descontar"].Visible = false;
                    this.dataGridView1.Columns["cantidad_pagada"].Visible = false;
                    this.dataGridView1.Columns["fecha_autorizacion"].Visible = false;
                    this.dataGridView1.Columns["plazo"].Visible = false;
                    this.dataGridView1.Columns["prioridad"].Visible = false;
                    this.dataGridView1.Columns["sueldo_mensual"].Visible = false;
                    this.dataGridView1.Columns["puesto"].Visible = false;
                    this.dataGridView1.Columns["empresa"].Visible = false;
                    this.dataGridView1.Columns["Nombre1"].Visible = false;
                    //Formato a las celdas ya sea en pesos o fecha
                    this.dataGridView1.Columns["fecha_autorizacion"].DefaultCellStyle.Format = "d";
                    this.dataGridView1.Columns["fecha_solicitud"].DefaultCellStyle.Format = "d";
                    this.dataGridView1.Columns["sueldo_mensual"].DefaultCellStyle.Format = "c";
                    this.dataGridView1.Columns["cantidad_solicitada"].DefaultCellStyle.Format = "c";
                    this.dataGridView1.Columns["cantidad_autorizada"].DefaultCellStyle.Format = "c";
                    this.dataGridView1.Columns["cantidad_descontar"].DefaultCellStyle.Format = "c";
                    this.dataGridView1.Columns["cantidad_pagada"].DefaultCellStyle.Format = "c";

                    if (bandera != 3)
                    {
                        //Ordena Columnas
                        this.dataGridView1.Columns["Nombre_apellidos"].DisplayIndex = 0;
                        this.dataGridView1.Columns["Nombre1"].DisplayIndex = 1;
                        this.dataGridView1.Columns["departamento"].DisplayIndex = 2; 
                    }
                    switch (bandera)
                    {
                        case 1:
                         
                            this.dataGridView1.Columns["fecha_solicitud"].Visible = true;
                            this.dataGridView1.Columns["tipo_prestamo"].Visible = true;
                            this.dataGridView1.Columns["cantidad_solicitada"].Visible = true;

                            this.dataGridView1.Columns["fecha_solicitud"].DisplayIndex = 3;
                            this.dataGridView1.Columns["tipo_prestamo"].DisplayIndex = 4;
                            this.dataGridView1.Columns["cantidad_solicitada"].DisplayIndex = 5;

                            break;

                        case 2:
                          
                            this.dataGridView1.Columns["fecha_autorizacion"].Visible = true;
                            this.dataGridView1.Columns["tipo_prestamo"].Visible = true;
                            this.dataGridView1.Columns["cantidad_autorizada"].Visible = true;

                            this.dataGridView1.Columns["fecha_autorizacion"].DisplayIndex = 3;
                            this.dataGridView1.Columns["tipo_prestamo"].DisplayIndex = 4;
                            this.dataGridView1.Columns["cantidad_autorizada"].DisplayIndex = 5;

                            break;
                        case 3:
                           
                            this.dataGridView1.Columns["fecha_autorizacion"].Visible = true;
                            this.dataGridView1.Columns["cantidad_autorizada"].Visible = true;
                            this.dataGridView1.Columns["cantidad_pagada"].Visible = true;
                            this.dataGridView1.Columns["plazo"].Visible = true;
                         
                         
                            this.dataGridView1.Columns["Nombre_apellidos"].DisplayIndex = 0;
                            this.dataGridView1.Columns["Nombre1"].DisplayIndex = 1;
                            this.dataGridView1.Columns["departamento"].DisplayIndex = 2;
                            this.dataGridView1.Columns["puesto"].DisplayIndex = 3;
                            this.dataGridView1.Columns["fecha_autorizacion"].DisplayIndex = 4;
                            this.dataGridView1.Columns["plazo"].DisplayIndex = 5;
                            this.dataGridView1.Columns["cantidad_autorizada"].DisplayIndex = 6;
                            this.dataGridView1.Columns["cantidad_pagada"].DisplayIndex = 7;


                            break;
                        case 4:
                           
                            this.dataGridView1.Columns["fecha_autorizacion"].Visible = true;
                            this.dataGridView1.Columns["cantidad_autorizada"].Visible = true;
                            this.dataGridView1.Columns["fecha_autorizacion"].DisplayIndex = 3;
                            this.dataGridView1.Columns["cantidad_autorizada"].DisplayIndex = 4;

                            break;
                    }

                    //Renombra columnas
                    this.dataGridView1.Columns["Nombre_apellidos"].Width = 250;
                    this.dataGridView1.Columns["Nombre_apellidos"].HeaderText = "EMPLEADO";
                    this.dataGridView1.Columns["departamento"].HeaderText = "DEPARTAMENTO";
                    this.dataGridView1.Columns["puesto"].HeaderText = "PUESTO";
                    this.dataGridView1.Columns["Nombre1"].HeaderText = "SUCURSAL";
                    this.dataGridView1.Columns["fecha_solicitud"].HeaderText = "FECHA SOLICITUD";
                    this.dataGridView1.Columns["tipo_prestamo"].HeaderText = "TIPO DE PRESTAMO";
                    this.dataGridView1.Columns["cantidad_solicitada"].HeaderText = "CANTIDAD SOLICITADA";
                    this.dataGridView1.Columns["prioridad"].HeaderText = "PRIORIDAD";
                    this.dataGridView1.Columns["plazo"].HeaderText = "PLAZO";
                    this.dataGridView1.Columns["fecha_autorizacion"].HeaderText = "FECHA AUTORIZADO";
                    this.dataGridView1.Columns["cantidad_pagada"].HeaderText = "CANTIDAD PAGADA";
                    this.dataGridView1.Columns["cantidad_descontar"].HeaderText = "CANTIDAD DESCONTAR";
                    this.dataGridView1.Columns["cantidad_autorizada"].HeaderText = "CANTIDAD AUTORIZADA";
                    this.dataGridView1.Columns["plazo"].Width = 40;

                    //Alinea el contenido de la celda
                    this.dataGridView1.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
                    this.dataGridView1.Columns["sueldo_mensual"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
                    this.dataGridView1.Columns["cantidad_solicitada"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
                    this.dataGridView1.Columns["cantidad_autorizada"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
                    this.dataGridView1.Columns["cantidad_descontar"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
                    this.dataGridView1.Columns["cantidad_pagada"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;

                    this.dataGridView1.Columns["Nombre_apellidos"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
                    this.dataGridView1.Columns["departamento"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
                    this.dataGridView1.Columns["puesto"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
                    this.dataGridView1.Columns["Nombre1"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
                    this.dataGridView1.Columns["fecha_solicitud"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
                    this.dataGridView1.Columns["tipo_prestamo"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
                    this.dataGridView1.Columns["cantidad_solicitada"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
                    this.dataGridView1.Columns["prioridad"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
                    this.dataGridView1.Columns["plazo"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
                    this.dataGridView1.Columns["fecha_autorizacion"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
                    this.dataGridView1.Columns["cantidad_pagada"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
                    this.dataGridView1.Columns["cantidad_descontar"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
                    this.dataGridView1.Columns["cantidad_autorizada"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;

                  
                    this.dataGridView1.Columns["fecha_solicitud"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
                    this.dataGridView1.Columns["fecha_autorizacion"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
                    //this.dataGridView1.Columns["tipo_prestamo"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
                    this.dataGridView1.Columns["prioridad"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
                    this.dataGridView1.Columns["plazo"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
                }
                catch { }

         
            }
            private void ToolTip1()
            {
                ToolTip toolTip1 = new ToolTip();
                toolTip1.ShowAlways = true;
                toolTip1.SetToolTip(this.btnBuscar, "BUSCAR");
                toolTip1.SetToolTip(this.btnDetalles, "DETALLES PRESTAMO");
               // toolTip1.SetToolTip(this.btnInforme, "GENERAR REPORTE");
                toolTip1.SetToolTip(this.btnModificar, "MODIFICAR");
                toolTip1.SetToolTip(this.btnSalir, "REGRESAR");
            }
            private void ObtieneDatosCombo()
            {
                //Obtiene los datos de la tabla cat_sucursales al combo de sucursales
                cmbSucursal.DataSource = Mane.ObtieneSucursales();
                cmbSucursal.ValueMember = "SucId";
                cmbSucursal.DisplayMember = "Nombre";
            }
      
        #endregion 

        #region botones

                private void btnBuscar_Click(object sender, EventArgs e)
                {
                    LlenarDatagrid();

                }

                private void btnRegresar_Click(object sender, EventArgs e)
                {
                    Close();
                }

                private void btnModificar_Click(object sender, EventArgs e)
                {
                    try
                    {
                        if (objP != null && objR != null)
                        {
                            frmPrestamos_Autoriza aut = new frmPrestamos_Autoriza(objP, objR, 2);
                            aut.ShowDialog();
                            LlenarDatagrid();
                        }
                    }
                    catch { }

                }
         
                private void btnInforme_Click(object sender, EventArgs e)
                {
                    try
                    {
                        if (objP != null && objR!=null)
                        {
                            if (objP.Descripcion == "") objP.Descripcion = " ";
                            //frmPrestamo_Votacion rp = new frmPrestamo_Votacion();
                            //frmPrestamos_ReporteSolicitud rep = new frmPrestamos_ReporteSolicitud(objP, objR);
                            //rep.ShowDialog();
                        }
                    }
                    catch { }
                }

                private void btnSalir_Click(object sender, EventArgs e)
                {
                    Close();
                }
             
                private void btnDetalles_Click(object sender, EventArgs e)
                {
                    try
                    {
                        if (objP!= null && objR!= null)
                        {
                            frmPrestamo_Detalles pres = new frmPrestamo_Detalles(objP, objR);
                            pres.ShowDialog();
                        }
                    }
                    catch { }
                }


        #endregion

        #region eventos
            private void rdoBtnAutorizado_CheckedChanged(object sender, EventArgs e)
            {
                LlenarDatagrid();
                btnModificar.Visible = false;
                //btnInforme.Visible = true;
            }

            private void rdoBtnProceso_CheckedChanged(object sender, EventArgs e)
            {
                LlenarDatagrid();
                btnModificar.Visible = false;
                //btnInforme.Visible = true;
            }

            private void rdoBtnNoautorizado_CheckedChanged(object sender, EventArgs e)
            {
                LlenarDatagrid();
                btnModificar.Visible = true;
              //  btnInforme.Visible = false;
            }

            private void rdoBtnPagados_CheckedChanged(object sender, EventArgs e)
            {
                LlenarDatagrid();
                btnModificar.Visible = false;
               // btnInforme.Visible = true;
            }
          
            private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
            {

              try{
                  if (e.ColumnIndex >= 0 && e.RowIndex >= 0)
                  {
                     
                      objR.Id_Empleado = Convert.ToInt32(dataGridView1[0, e.RowIndex].Value);
                      objR.SucId = dataGridView1[1, e.RowIndex].Value.ToString();
                      objR.Nombre = dataGridView1[2, e.RowIndex].Value.ToString();
                      objR.Apellidos = dataGridView1[4, e.RowIndex].Value.ToString();
                      objR.Puesto = dataGridView1[5, e.RowIndex].Value.ToString();
                      objR.FechaIngreso = Convert.ToDateTime(dataGridView1[6, e.RowIndex].Value);
                      objR.Departamento = dataGridView1[7, e.RowIndex].Value.ToString();
                      objR.Cuenta_Banco = dataGridView1[8, e.RowIndex].Value.ToString();
                      objR.Estatus = Convert.ToInt32(dataGridView1[9, e.RowIndex].Value);

                      objP.Id_Prestamo = Convert.ToInt32(dataGridView1[11, e.RowIndex].Value);
                      objP.Fecha_Solicitud = Convert.ToDateTime(dataGridView1[13, e.RowIndex].Value);
                      objP.Fecha_autorizacion = Convert.ToDateTime(dataGridView1[14, e.RowIndex].Value);
                      objP.Tipo_prestamo = dataGridView1[15, e.RowIndex].Value.ToString();
                      objP.Descripcion = dataGridView1[16, e.RowIndex].Value.ToString().Trim();
                      objP.Plazo = Convert.ToInt32(dataGridView1[17, e.RowIndex].Value);
                      objP.Cantidad_Solicitud = dataGridView1[18, e.RowIndex].Value.ToString();
                      objP.Cantidad_Autorizada = dataGridView1[19, e.RowIndex].Value.ToString();
                      objP.Monto_descontar = dataGridView1[20, e.RowIndex].Value.ToString();
                      objP.Saldo_pagado = dataGridView1[21, e.RowIndex].Value.ToString();
                      objP.Autorizado = dataGridView1[22, e.RowIndex].Value.ToString();
                      objP.Prioridad = dataGridView1[23, e.RowIndex].Value.ToString();
                      objP.Estatus = Convert.ToInt32(dataGridView1[24, e.RowIndex].Value);
                      objP.Razones = dataGridView1[25, e.RowIndex].Value.ToString();
                      objR.Sueldo_Mensual = dataGridView1[27, e.RowIndex].Value.ToString();
                      objR.Nombre_completo = dataGridView1[28, e.RowIndex].Value.ToString();
                      objR.Nombre_Sucursal = dataGridView1[26, e.RowIndex].Value.ToString();
                  }
                     
                  }catch{}
                }

            private void txtBuscar_TextChanged(object sender, EventArgs e)
            {
                LlenarDatagrid();
            }
        #endregion

    }
}
